Building Composable Aspect-Specific Languages with Logic Metaprogramming
نویسندگان
چکیده
The goal of aspect-oriented programming is to modularize crosscutting concerns (or aspects) at the code level. These aspects can be defined in either a general-purpose language or in a language that is fine-tuned to a specific aspect in consideration. Aspect-specific languages provide more concise and more readable aspect declarations but are limited to a specific domain. Moreover, multiple aspects may be needed in a single application and combining aspects written in different aspect languages is not an easy task. To solve this combination problem, we represent both aspects and aspect languages as modularized logic metaprograms. These logic modules can be composed in flexible ways to achieve combinations of aspects written in different aspect-specific languages. As such, the advantages of both general-purpose and aspect-specific languages are combined.
منابع مشابه
Fan: compile-time metaprogramming for OCaml
This paper presents Fan, a general-purpose syntactic metaprogramming system for OCaml. Fan helps programmers create delimited, domain-specific languages (DDSLs) that generalize nested quasiquotation and can be used for a variety of metaprogramming tasks, including: automatically deriving “boilerplate” code, code instrumentation and inspection, and defining domain-specific languages. Fan provide...
متن کاملCreating and using domain-specific language features Position Paper
The value that domain-specific languages provide to their users is the domain-specific language features they contain. These features provide notations from the domain of interest, as well as domain-specific analysis and optimizations. But domain-specific languages are sometimes a poor means of delivering these valuable features to their users. A challenge arises when a problem crosses multiple...
متن کاملA Symbiotic Approach to Aspect-Oriented Logic Meta Programming In a Prototype-based Language
To date, most aspect-oriented programming technology is founded on classbased programming. Class-based object-orientation, however, covers only half of the object-oriented paradigm. The prototype-based subparadigm structures programs using objects alone, without requiring class abstractions. It is mostly this lack of classes why prototype-based languages have been left untouched by aspect techn...
متن کاملParallel Programming with Logic Languages: A Survey
Formal properties of logic languages are largely studied; however, their impact on the practice of software design and programming is currently minimal. In this paper we survey some interesting representatives of the family of logic languages aiming at comparing the different capabilities they offer for designing and programming parallel systems. The logic languages Prolog, Aurora, Flat Concurr...
متن کاملImplementing Monads for C + + Template Metaprograms ∗ Technical report TR -
C++ template metaprogramming is used in various application areas, such as expression templates, static interface checking, active libraries, etc. Its recognized similarities to pure functional programming languages – like Haskell – make the adoption of advanced functional techniques possible. Such a technique is using monads, programming structures representing computations. Using them actions...
متن کامل